package com.zhdl.modules.autopick.service;

/**
 * 实现动作方法-处理指令的地方
 */
public interface CmdHandleService {

    /**
     * 机器人-测试 发送M信号
     */
    void robotSendM(int address, boolean open);

    /**
     * 机器人-测试 清除M信号
     */
    void robotReceiveM(int address, boolean open);


    /**
     * 机器人-初始化 -M12
     */
    void robotInit();

    /**
     * 机器人-回原点信号 -M12
     */
    void robotM12(int address, boolean open);

    /**
     * 机器人-放料信号 -M11
     */
    void robotM11(int address, boolean open);

    /**
     * 机器人-抓料信号 -M10
     */
    void robotM10(int address, boolean open);

    /**
     * 机器人-回原点完成 -M22
     */
    void robotM22(int address);

    /**
     * 机器人-放料完成 -M21
     */
    void robotM21(int address);

    /**
     * 机器人-抓料完成 -M20
     */
    void robotM20(int address);

    /**
     * 机器人-等待气缸松开到位 -M110
     */
    void robotM110(int address, boolean open);

    /**
     * 机器人-等待气缸抓紧到位 -M111
     */
    void robotM111(int address, boolean open);

    /**
     * 机器人-等待气缸抓紧到位 -M112
     */
    void robotM112(int address, boolean open);

    /**
     * 机器人-等待气缸抓紧到位 -M113
     */
    void robotM113(int address, boolean open);

    /**
     * 机器人-等待抖料到位 -M114
     */
    void robotM114(int address, boolean open);

    /**
     * 机器人-通知松开开始 -M120
     */
    void robotM120(int address);

    void robotStatusM(int address);

    /**
     * 机器人-通知抓紧开始 -M121
     */
    void robotM121(int address);

    /**
     * 机器人-通知气缸下移开始 -M122
     */
    void robotM122(int address);

    /**
     * 机器人-通知气缸上回开始 -M123
     */
    void robotM123(int address);

    /**
     * 机器人-通知抖料开始 -M124
     */
    void robotM124(int address);

    /**
     * 机器人 -- 读取世界坐标
     */
    void robotStatusCoordinate();


    /**
     * 机器人 -- 上电上抬位置 820(55A0)-825
     */
    void robotSetZLocation(int[] currentLocation);

    /**
     * 设置 机器人抓取点 800(558C)-805
     */
    void pickLocation(int[] photoLocation);

    /**
     * 设置 机器人抓取点上方 810(5596)-815
     */
    void pickUpLocation(int[] photoLocation);

    /**
     * 机器人-暂停 启动
     */
    void robotSetPause(boolean open);

    /**
     * 机器人-抓取
     */
    void robotPick();

    /**
     * 机器人-放下
     */
    void robotRelease();

    /**
     * 机器人-气缸下推
     */
    void robotAirDown();

    /**
     * 机器人-气缸上回
     */
    void robotAirUp();

    /**
     * 机器人-破袋
     */
    void robotCrackBag();

    /**
     * 机器人-抖动手臂
     */
    void robotShakeArm();

    /**
     * 机器人-回原点
     */
    void robotGoHome();

    /**
     * 电机-设置多端运动开始的段数
     *
     * @param step 开始段数
     */
    void motorStartStep(int step);

    /**
     * 电机-设置多端运动结束的段数
     *
     * @param step 结束段数
     */
    void motorEndStep(int step);

    /**
     * 电机-设置多端运动的速度
     *
     * @param speed 速度
     */
    void motorRunSpeed(int speed);

    /**
     * 电机移动 - 10000个单位 为一圈
     *
     * @param moveDist 移动距离
     */
    void motorRun(String address, int moveDist);

    /**
     * 电机移动 - 伺服使能 + 电机多端 运动
     */
    void motorReadyAndRun();

    /**
     * 电机-初始化
     */
    void motorInit();

    /**
     * 电机-获取状态
     */
    void motorStatus();


    void motorLocation();

    void motorArriveZero();

    /**
     * 电机伺服使能
     */
    void motorReady();

    /**
     * 电机-停止运动
     */
    void motorStop();

    /**
     * IO-抬起杆
     */
    void motorUpPole();

    /**
     * IO-放下杆
     */
    void motorDownPole();

    /**
     * IO-打开漏斗
     */
    void motorOpenFunnel();

    /**
     * IO-关闭漏斗
     */
    void motorCloseFunnel();

    /**
     * 电机-回到原点
     */
    void motorGoHome();

    /**
     * pcb-读取信息
     */
    void pcbReadInfo();

    /**
     * pcb-写入信息
     */

    void pcbWriteInfo(int address, String open);

    /*
     * -------------------------------东区电机---------------------------------
     */

    void ioWriteCoil(int address, String open);

    void ioWriteDoubleCoil(int address, boolean open);

    /**
     * 东区电机-电机找原点
     */
    void motorEasternInit();

    /**
     * 东区电机-电机运动
     */
    void motorEasternRun(Integer destinationValue, Integer tSpeedValue);

    /**
     * 东区电机-电机停止
     */
    void motorEasternStop();

    /**
     * 东区电机-获取电机当前状态
     */
    void motorEasternStatus();

    void motorSlagStartStep(String slaveStationId, int step);

    void motorSlagEndStep(String slaveStationId, int step);

    void motorSlagRunSpeed(String slaveStationId, int speed);

    void motorSlagRun(String slaveStationId, String address, int moveDist);

    void motorSlagReadyAndRun(String slaveStationId);

    void motorSlagInit(String slaveStationId);

    void motorSlagStatus(String slaveStationId);

    void motorSlagLocation(String slaveStationId, String address);

    void motorSlagReady(String slaveStationId);

    void motorSlagStop(String slaveStationId);
}
